#ifndef QUEUE_H
#define QUEUE_H

#include <stdlib.h>
#include "paging.h"

typedef struct pcb_t{
	char R[5];  // register
	char IC[3]; // counter
	char SP[5]; // stack pointer
	char BR[5]; // base register
	char LR[5]; // limit register
	char C;     // bool
	char PID[3];  // process ID
	char args[3];  // process ID argument for SD/RV instructions
	pageTable* pt;
	int totalPages; // total number of pages this process has, 1-10
}pcb;


typedef struct node_t{
	struct node_t* next;
	void* data;
}node;


typedef struct list_t{
	int length;
	node* head;
	node* tail;
}list;




node* pop(list* lst);
node* rm (list* lst, int index);
void initPCB(pcb* block);
void cycle(list* lst); //pops the head and then appends it to the back
void append(list* lst, void* data, node* n);
void printList(list* lst);
void printPCB(pcb* block);




#endif
